package cn.wolfcode.luowowo.redis.service;

import cn.wolfcode.luowowo.redis.vo.StrategyStatisVO;

import java.util.List;

/**
 * 攻略统计对象在Redis的操作接口
 */
public interface IStrategyStatiesVORedisService {
    /**
     * 攻略阅读量的统计
     * @param sid
     * @param i
     */
    void viewnumIncrease(String sid, int i);

    /**
     * 获得vo
     * @param sid
     * @return
     */
    StrategyStatisVO getStrategyStatisVo(String sid);

    /**
     * 设置vo对象，更改后的数据有效果
     * @param vo
     */
    void setStrategyStatisVo(StrategyStatisVO vo);

    /**
     * 评论统计数
     * @param strategyId
     * @param i
     */
    void replynumIncrease(String strategyId, int i);

    /**
     * 收藏
     * @param sid
     * @param uid
     * @return  攻略收藏： ret：true 收藏成功 ，false：取消收藏
     */
    boolean favor(String sid, String uid);

    /**
     * 通过用户的id去Redis中拿到vo中的sids
     * @param uid
     * @return
     */
    List<String> getSids(String uid);

    /**
     * 点赞攻略
     * @param sid
     * @param uid
     * @return
     */
    boolean strategyThumbup(String sid, String uid);

    /**
     * 判断攻略相关的统计参数在Redis中是否已经存在
     * @param sid
     * @return true:存在  false：不存在
     */
    boolean isVoExist(String sid);

    /**
     * 通过模板获取到匹配所有前缀一样的vo统计数据
     * @param pattern
     * @return
     */
    List<StrategyStatisVO> listStrategyVoByPattern(String pattern);
}
